package org.wisdom.ab.apis.assembler;

import cn.hutool.core.bean.BeanUtil;
import org.springframework.stereotype.Component;
import org.wisdom.ab.domain.company.entity.AbCompany;
import org.wisdom.ab.dto.CompanyDto;

import java.util.List;
import java.util.stream.Collectors;

/**
 * 公司组装器
 *
 * @author 张智研
 * @date 2022/05/23 13:59
 **/
@Component
public class CompanyAssembler {

    /**
     * 公司dto转换为实体
     *
     * @author 张智研
     * @date 2022/05/23 14:02
     * @param companyDto
     *            公司
     * @return org.wisdom.ab.domain.entity.AbCompany
     */
    public AbCompany companyDtoToEntity(CompanyDto companyDto) {
        return BeanUtil.copyProperties(companyDto, AbCompany.class);
    }

    /**
     * 公司实体转换为dto
     *
     * @author 张智研
     * @date 2022/05/23 14:02
     * @param company
     *            公司
     * @return org.wisdom.ab.dto.CompanyDto
     */
    public CompanyDto companyEntityToDto(AbCompany company) {
        return BeanUtil.copyProperties(company, CompanyDto.class);
    }

    /**
     * 公司实体列表转换为dto列表
     *
     * @author 张智研
     * @date 2022/05/23 14:02
     * @param companyList
     *            公司列表
     * @return java.util.List<org.wisdom.ab.dto.CompanyDto>
     */
    public List<CompanyDto> companyEntityToDto(List<AbCompany> companyList) {
        return companyList.stream().map(this::companyEntityToDto).collect(Collectors.toList());
    }
}
